Computer aided design (CAD) systems according to the state of the art are used to create and edit mechanical parts, integrated circuits, printed circuit boards etc. in an interactive mode. That is, the user enters his input commands via a keyboard, a graphics tablet, a mouse or the like, and the created geometry is displayed on a screen like a CRT (cathode ray tube), an LC (liquid crystal) display and so on (the output device may even be a plotter or the like). The process of entering or modifying a certain geometry may be quite difficult and time-consuming. It is therefore a basic goal for the development of CAD systems to provide as much user assistance as possible, in order to save engineering time and increase the acceptance of the system.
One tool to make the generation and editing processes of geometric objects easier is the so-called "catching technique". That is, if a cursor displayed on the screen approaches a geometric object or a singular point thereof, it will be "caught" if it is within the catch range. The catch range is usually an imaginary circle surrounding the current cursor position (however, other definitions of the catch range may be used as well, like a rectangle, or a circle with context-dependent radius). Geometric objects as mentioned herein may e.g. be straight lines, circles, arcs and other kinds of geometric contours. Singular points are e.g. the endpoints or the midpoint of a line, the center of a circle, the focal point of a parabolic curve etc.
A very simple example will be described now:
Let us assume that the user has already drawn a (first) line on the screen. He may then reposition the cursor to another (new) location and instruct the system that this is the new cursor starting position. Thereafter, he may move the cursor, and whenever he enters a "draw line" command (e.g. by an appropriate keystroke), the CAD system generates a new (second) line from the new cursor starting position to the current cursor position.
If, however, the current cursor position is quite close to the line already drawn (i.e. within the catch range), the CAD system assumes that the user wanted to have the second line end on the first line, and therefore the second line is drawn from the new cursor position to a point on the first line. Similarly, if a singular point of the first line is within the catch range, the second line is drawn from the new cursor position to this singular point (e.g. an endpoint of the first line).
Although this process works, the user has no indication whether the CAD system will "trigger" on an existing geometric object or a singular point thereof; he may only observe this when the geometry has already been created. One has therefore already tried to give him some indication in advance what will happen after a "draw" command, e.g. by displaying the word "midpoint" if the midpoint of an existing line is within the catch range. Disadvantages of this known technique are that
a) only singular points of existing geometry elements are taken into account; that is, the user gets no indication when a geometric element, but none of its singular points, is within the catch range; PA1 b) the user does not know all possible singular points of an existing geometric element in advance, i.e. he does not know on which singular points he may "trigger". In contrast, he only notes by accidental appearance of a displayed singular point that he has "trapped" into it. PA1 identifying, retrieving or defining a geometric object, e.g. a line or a circle, PA1 identifying, retrieving or defining the position of a cursor, PA1 generating at least one geometric relation between said cursor position and said geometric object independent of said cursor position, or between said geometric object and at least a second geometric object, PA1 generating graphic representations of said cursor position, said geometric object and said geometric relation and/or said second geometric object and feeding it to said display, and PA1 entering a selection mode for accepting said geometric relation. PA1 a) The type of geometry being input, e.g. line, circle or vector. PA1 b) The type of existing geometry to which a relationship is desired. PA1 c) Any data already input, e.g. a first input point. PA1 line between the cursor position and an endpoint of the straight line, PA1 line between the cursor position and the midpoint of the straight line, PA1 line perpendicular to the straight line and extending at least between the cursor position and the straight line, PA1 line through the cursor position and extending parallel to the straight line. PA1 line through the cursor position and tangential to the circle, PA1 line through the cursor position and the center of the circle. PA1 line through endpoints of two straight lines, PA1 line through the midpoint of a straight line and an endpoint of another straight line, PA1 line through the midpoints of two straight lines, PA1 line perpendicular or parallel to a straight line and extending through an endpoint or the midpoint of another straight line, PA1 line through the midpoint or an endpoint of a straight line and through the center of a circle, PA1 line through the midpoint or an endpoint of a straight line and tangential to a circle, PA1 line through the centers of two circles, PA1 line through the center of a circle and tangential to another circle, PA1 line tangential to two circles. PA1 at least one user input interface, preferably a keyboard, a graphics tablet or a computer mouse, PA1 a digital processor connected to said user input interface, PA1 at least one display connected to said digital processor, PA1 an object description memory containing data on already defined geometric objects, PA1 a picture instruction memory for generating a pictorial representation of already defined geometric objects, PA1 a cursor position memory.
Other known support tools for interactive geometry specification are the so-called construction geometry elements. Elements of this type are usually used to construct points, which are subsequently used to specify the intended geometry. In other words, the construction geometry elements are auxiliary elements which are only used on a temporary basis, but do not form part of the final geometry. In practice, construction geometry elements are often used to find the intersection point between several elements. Additionally, catching may be used to correct pick points onto the construction geometry elements.